package com.ecommerce.payment.service;

import com.ecommerce.common.core.ApiResult;
import com.ecommerce.payment.dto.*;

/**
 * 支付服务接口
 */
public interface PaymentService {

    /**
     * 创建支付订单
     */
    ApiResult<PaymentResponse> createPayment(CreatePaymentRequest request);

    /**
     * 查询支付状态
     */
    ApiResult<PaymentResponse> queryPaymentStatus(String paymentNo);

    /**
     * 支付回调处理
     */
    ApiResult<PaymentResponse> handlePaymentCallback(PaymentCallbackRequest request);

    /**
     * 申请退款
     */
    ApiResult<RefundResponse> requestRefund(RefundRequest request);

    /**
     * 查询退款状态
     */
    ApiResult<RefundResponse> queryRefundStatus(String refundNo);
}